home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 February: Tool Chest / Dev.CD Feb 94.toast / New System Software Extensions / QuickDraw™ GX v1.0ß2 / Sample Code / Printing Samples / Extensions… / Spooling Extension ƒ / Spooling.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-09-09  |  3.5 KB  |  105 lines  |  [TEXT/MPS ]

  1. /*________________________________________________________
  2.  
  3.     File: Spooling.h
  4.  
  5.     C header file for a printing extension which redirects
  6.     spool files.
  7.  
  8.     Dave Hersey
  9.     Apple Developer Technical Support
  10.  
  11.      1/29/93 - dmh - begat.
  12.      4/27/93 - dmh - Updated for b1.
  13.      9/06/93 - dmh - Updated to b2.
  14.              - Switched to Exception.h assertion stuff
  15.                for error checking.
  16.  
  17.     (Note: labels are in the Mark menu.)
  18.     
  19. __________________________________________________________*/
  20.  
  21. #include <Types.h>
  22. #include <Errors.h>
  23. #include <Resources.h>
  24. #include <ToolUtils.h>
  25. #include <Aliases.h>
  26. #include <Folders.h>
  27. #include <StandardFile.h>
  28. #include <Exceptions.h>
  29. #include <graphics routines.h>
  30. #include <graphics types.h>
  31. #include <Collections.h>
  32. #include <PrintingManager.h>
  33. #include <PrintingMessages.h>
  34.  
  35. #define kRedirectDisabled        0         /* spool redirection is turned off.        */
  36.  
  37. #define kCreator                '≠-34'
  38. #define kSpoolCollectionType    kCreator /* our collection type.                    */
  39.  
  40. #define kAliasID                12345     /* the resource ID of our folder alias.    */
  41. #define kConfigType                'INFO'     /* our collection's resource type.            */
  42. #define kConfigID                10101
  43.  
  44. #define kPrefsFileCreator        'RSED'     /* Our preferences file will be a            */
  45. #define kPrefsFileType            'rsrc'     /* ResEdit-owned resource file.            */
  46.  
  47. #define r_fileDlogID            7000     /* resource ID of our custom file dialog.    */
  48. #define d_selectItem            10          /* DITL ID of select button.                */
  49. #define d_selectDirectory        4         /* "Spool to…" button.                        */
  50.  
  51. #define r_spoolPanel            6000     /* our panel ID.                            */
  52. #define d_folderName            6         /* text field for current folder name.        */
  53. #define d_volumeName            8         /* text field for current volume name.        */
  54.  
  55. #define    r_stringRsrc            200         /* resource ID of our STR# list.            */
  56. #define    r_prefsStrIdx            1         /* STR# item w/the name of the Prefs file.    */
  57.  
  58.  
  59. // This is what our collection looks like.
  60.  
  61. typedef struct SpoolCollection
  62. {                                    // offset:
  63.     unsigned char    extTurnedOn;    //   0        on/off setting from panel.
  64.     char            fillByte;        //           fill byte.
  65.     Str63            folderName;        //     2        name of the selected folder.
  66.     Str63            volumeName;        //            name of the selected volume.
  67. } SpoolCollection;
  68.  
  69.  
  70. // Function prototypes:
  71.  
  72. // external defines for creating our A5 world.
  73.  
  74. extern long A5Size (void);
  75. extern void A5Init (void *);
  76.  
  77. OSErr    InitGlobalData(void);
  78. OSErr    SPInitialize(void);
  79. OSErr    SPShutDown(void);
  80. OSErr    SPJobPrintDialog(gxDialogResult *dlogResult);
  81. OSErr    SetUpPrintPanel(void);
  82. OSErr    SPHandlePanelEvent(gxPanelInfoRecord *panelInfo);
  83. void    OpenSpoolPanel(DialogPtr pDlg, short itemCount);
  84. OSErr    SavePanelChanges(void);
  85. OSErr    SPCreateSpoolFile(FSSpec *anFSSpec, long createOptions, gxSpoolFile *spFile);
  86. Boolean    GetFolder(FSSpec *fSpec);
  87. pascal    short MyDlgHook(short item, DialogPtr theDlg, Ptr userData);
  88. pascal    Boolean FilterAllFiles(CInfoPBPtr pb, Ptr myDataPtr);
  89. OSErr    GetDefaultSettings(SpoolCollection *spoolConfig);
  90. long    GetActualDirID(FSSpec *fSpec);
  91. OSErr    OpenPrefsFile(short *resRefNum, char permission);
  92. OSErr    ReplaceResource(Handle newData, OSType resourceType, short resourceID);
  93. OSErr    GetSpoolCollection(SpoolCollection *spoolCollect);
  94. OSErr    StoreSpoolCollection(SpoolCollection *spoolCollect, Boolean newItem);
  95. Boolean    AliasToPathName(AliasHandle anAlias, char *folderName, char *volName);
  96. void    GetPrefsName(char *prefsName);
  97.  
  98.  
  99. /* globals */
  100.  
  101. extern Str255        gPrefsFileName;            // The name of our preferences file.
  102. extern AliasHandle    gCurFolderAlias;        // The current folder alias used by the panel.
  103. extern Boolean        gSettingsChanged;        // True if we have panel changes to save.
  104. extern Boolean        gLastEnableSetting;        // The "enabled" setting when we opened the panel.
  105.